home *** CD-ROM | disk | FTP | other *** search
/ Robotics & Artificial Int…3 (Professional Edition) / Robotics & Artificial Intelligence Tools 2003 (Professional Edition).iso / robot software / webots-kros-1.0.1_setup.exe / {app} / kteam / glue / etc / Makefile_Common < prev    next >
Makefile  |  2001-02-07  |  5KB  |  142 lines

  1. ##############################################################
  2. #
  3. # Makefile master for the Source Navigator / GNU Compiler Env.
  4. #
  5. # Copyright (C) 2000 K-TEAM S.A.
  6. #
  7. ##############################################################
  8.  
  9.  
  10. ##############################################################
  11. # Variables that user must no change without possible disrupts
  12. ##############################################################
  13.  
  14. BIOS = $(hdw_pack)lib/bios.bin
  15. mdscript = $(hdw_pack)etc/module.ld
  16. rmscript = $(hdw_pack)etc/rom.ld
  17. dwscript = $(hdw_pack)etc/download.ld
  18. dbscript = $(hdw_pack)etc/debug.ld
  19.  
  20. # In case the distribution is not the builtin one in gcc, tell
  21. # the compiler where to find everything:
  22.  
  23. EXE_SYS = -b $(exeprefix) -B$(prefix)lib/gcc-lib/
  24. LIB_SYS = -L$(hdw_pack)lib \
  25.           -L$(prefix)lib/gcc-lib/$(exeprefix)/$(gccversion) \
  26.           -L$(prefix)lib \
  27.           -L$(sft_pack)lib \
  28.           -L$(sft_pack)ktdebug/lib \
  29.           -L$(sft_pack)glue/lib \
  30.           -L$(sft_pack)kbus/lib
  31. INC_SYS    = -I$(hdw_pack)include \
  32.           -I$(prefix)lib/gcc-lib/$(exeprefix)/$(gccversion)/include \
  33.           -I$(prefix)include/g++-3 \
  34.        -I$(sft_pack)include \
  35.           -I$(sft_pack)ktdebug/include \
  36.           -I$(sft_pack)kbus/include
  37.  
  38. # Object Format Converter:
  39. # Used cause PIC is supported only for elf output
  40. # it's impossible to make direct srec conversion
  41. CONVERT    = $(prefix)/bin/$(exeprefix)-objcopy
  42.  
  43. # Archiver Options:
  44. #          -r: replace files in archive if already present
  45. #          -s: generate file symbol table
  46. ARFLAGS = rs
  47. AR    = $(prefix)/bin/$(exeprefix)-ar
  48.  
  49. # Ranlib Options:
  50. RANLIB    = $(prefix)/bin/$(exeprefix)-ranlib
  51.  
  52. # Listing Options:
  53. #           -D: disassemble all sections of the files
  54. #           -x: show all the headers
  55. LIST    = $(prefix)/bin/$(exeprefix)-objdump --disassemble-zeroes -Dx
  56.  
  57.  
  58. # Assembler Options:
  59. # Play around needed to implement ASFLAGS -> CC_ASFLAGS and LDFLAGS
  60. comma:= ,
  61. empty:=
  62. space:= $(empty) $(empty)
  63. ifeq ($(strip $(ASFLAGS)),)
  64. CC_ASFLAGS = -Wa,$(subst  $(space),$(comma),$(strip $(ASFLAGS)))
  65. endif
  66.  
  67. # Linker Options:
  68. ifeq ($(strip $(LDFLAGS)),)
  69. MORELDFLAGS = ,$(subst  $(space),$(comma),$(strip $(LDFLAGS)))
  70. endif
  71. LDFLAGS_MOD  = $(LIB_SYS) -Wl,-s,-T$(mdscript),$(hdw_pack)lib/crt0.o$(MORELDFLAGS)
  72. LDFLAGS_ROM  = $(LIB_SYS) -Wl,-s,-T$(rmscript),$(hdw_pack)lib/crt0.o$(MORELDFLAGS)
  73. LDFLAGS_SREC = $(LIB_SYS) -Wl,-s,-T$(dwscript),$(hdw_pack)lib/crt0.o$(MORELDFLAGS)
  74. LDFLAGS_DBG  = $(LIB_SYS) -Wl,-T$(dbscript),$(hdw_pack)lib/crt0.o$(MORELDFLAGS)
  75.  
  76. # Compiler Options:
  77. CCDEBUG       = -g -DKROSDBG
  78. CCOPT       = -msoft-float -m68332 -nostdlib -ffreestanding $(CCPIC)
  79. CPPFLAGS   = -I$(includedir) 
  80. ALL_CFLAGS =  $(CPPFLAGS) $(EXE_SYS) $(INC_SYS) $(CC_ASFLAGS) $(CCOPT) $(CCUSERFLAGS) $(CFLAGS)
  81. CC       = $(prefix)bin/$(exeprefix)-gcc
  82. CXX       = $(prefix)bin/$(exeprefix)-g++
  83.  
  84. # Administator Options:
  85. DWNLD    = $(prefix)java/bin/java -cp $(prefix)lib/KheperaTerminal.jar KheperaTerminal.Main -port $(port) -speed $(speed) -upload
  86. COPY    = cp
  87. SPECIAL =
  88.  
  89. ##################
  90. # Implicit Rules #
  91. ##################
  92.  
  93. .SUFFIXES:
  94.  
  95. %.dwn: $(bindir)%.s37
  96.     @echo Downloading $?
  97.     @$(DWNLD) $?
  98.  
  99. $(bindir)%.s37: $(objdir)%.o
  100.     @echo Linking $(filter %.o,$^) into $@ 
  101.     @$(LINKER) $(SPECIAL) $(OPTS) $(ALL_CFLAGS) $(LDFLAGS_SREC) -o $@ $(filter %.o,$^) $(LOADLIBES)
  102.     @$(CONVERT) -I elf32-m68k -O srec $@
  103.  
  104. $(bindir)%.dbg: $(objdir)%.o
  105.     @echo Linking $(filter %.o,$^) into $@ 
  106.     @$(LINKER) $(CCDEBUG) $(SPECIAL) $(OPTS) $(ALL_CFLAGS) $(LDFLAGS_DBG) -o $@ $(filter %.o,$^) $(LOADLIBES)
  107.  
  108. $(bindir)%.rom: $(objdir)%.o
  109.     @echo Linking $(filter %.o,$^) into $@ 
  110.     @$(LINKER) $(SPECIAL) $(OPTS) $(ALL_CFLAGS) $(LDFLAGS_ROM) -o $@ $(filter %.o,$^) $(LOADLIBES)
  111.     @$(CONVERT) -I elf32-m68k -O binary $@
  112.     @echo Building Rom using BIOS file $(firstword $(filter %.BIN,$^) $(filter %.bin,$^) $(BIOS))
  113.     @cat  $(firstword $(filter %.BIN,$^) $(filter %.bin,$^) $(BIOS)) $@ > $(bindir)tmp
  114.     @mv $(bindir)tmp $@
  115.  
  116. $(libdir)%.a: 
  117.     @echo Building library $@ from $(filter %.o,$^) 
  118.     @$(AR) $(ARFLAGS) $@ $(filter %.o,$^) 
  119.  
  120. $(asmdir)%.lst: $(bindir)%.dbg
  121.     @echo Generating assembler listing for $< into $@ 
  122.     @$(LIST) $< > $@ 
  123.  
  124. $(asmdir)%.s: $(srcdir)%.cc
  125.     @echo Compiling w/o assembling $< into $@ 
  126.     @$(CXX) $(SPECIAL) $(OPTS) $(ALL_CFLAGS) -S -o $@ $<
  127.  
  128. $(asmdir)%.s: $(srcdir)%.c
  129.     @echo Compiling w/o assembling $< into $@ 
  130.     @$(CC) $(SPECIAL) $(OPTS) $(ALL_CFLAGS) -S -o $@ $<
  131.  
  132. $(srcdir)%.d: $(srcdir)%.c
  133.     @echo Finding dependencies into $<
  134.     @$(CC) -MM $(SPECIAL) $(OPTS) $(ALL_CFLAGS) -S -o $@ $<
  135.     
  136. $(srcdir)%.d: $(srcdir)%.cc
  137.     @echo Finding dependencies into $<
  138.     @$(CC) -MM $(SPECIAL) $(OPTS) $(ALL_CFLAGS) -S -o $@ $<
  139.  
  140.  
  141.  
  142.